{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 52
    },
    "id": "vlodqxaIxPCD",
    "outputId": "6fae8acc-caf5-46db-818a-a7772b3474e6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    },
    {
     "data": {
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "string"
      },
      "text/plain": [
       "'2.5.0'"
      ]
     },
     "execution_count": 4,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pickle\n",
    "import time\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from tensorflow import keras\n",
    "import tensorflow as tf\n",
    "import os\n",
    "import pandas as pd\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers.embeddings import Embedding\n",
    "from keras.layers import Dense, Activation \n",
    "from tensorflow.keras import initializers\n",
    "from tensorflow.keras.callbacks import LearningRateScheduler\n",
    "from tensorflow.keras.models import Model\n",
    "from tensorflow.keras.layers import BatchNormalization\n",
    "from tensorflow.keras.layers import Conv2D\n",
    "from tensorflow.keras.layers import MaxPooling2D\n",
    "from tensorflow.keras.layers import Activation\n",
    "from tensorflow.keras.layers import Dropout\n",
    "from tensorflow.keras.layers import Lambda\n",
    "from tensorflow.keras.layers import Dense\n",
    "from tensorflow.keras.layers import Flatten\n",
    "from tensorflow.keras.layers import Input, Concatenate, UpSampling2D\n",
    "from keras.preprocessing.text import Tokenizer\n",
    "tf.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "id": "JLBwWCAmxTci"
   },
   "outputs": [],
   "source": [
    "# loading image array\n",
    "file2 = open(\"image_lists1.pkl\", \"rb\")\n",
    "image_lists = pickle.load(file2)\n",
    "file2.close()\n",
    "\n",
    "# loading word character \n",
    "file3 = open(\"char.pkl\", \"rb\")\n",
    "char = pickle.load(file3)\n",
    "file3.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "OrhiS2-VxbKI",
    "outputId": "91fb6a99-389b-42ea-dea2-0762c94657a8"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(5000, 48, 160, 3)"
      ]
     },
     "execution_count": 6,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "image_lists = np.array([i[0] for i in image_lists])\n",
    "image_lists.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "Uct0E-wGvqbF"
   },
   "outputs": [],
   "source": [
    "t = Tokenizer(filters='|', char_level=True, oov_token=True) # character tokenizing \n",
    "t.fit_on_texts(char)\n",
    "values = list((t.texts_to_sequences(v)))\n",
    "\n",
    "for i in range(len(values)):\n",
    "  values[i] = values[i] + [39] #adding '39' as 'END' index to each list\n",
    "\n",
    "sen_pad = sequence.pad_sequences(values, maxlen=24,padding='post',truncating='post') #creating padding of max size '24'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "mPw2wvLcZATa",
    "outputId": "8268bce3-378d-4f9e-e6c6-8edb1dd6ff72"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<TensorSliceDataset shapes: ((48, 160, 3), (24,)), types: (tf.float32, tf.int32)>"
      ]
     },
     "execution_count": 8,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dataset = tf.data.Dataset.from_tensor_slices((image_lists, sen_pad)) #creating dataset of image array and padding\n",
    "dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "id": "htLvCZH3ZEya"
   },
   "outputs": [],
   "source": [
    "BUFFER_SIZE = 20000\n",
    "BATCH_SIZE = 10\n",
    "def make_batches(ds):\n",
    "  return (\n",
    "      ds\n",
    "      .cache()\n",
    "      .shuffle(BUFFER_SIZE)\n",
    "      .batch(BATCH_SIZE)\n",
    "      .prefetch(tf.data.AUTOTUNE))\n",
    "\n",
    "\n",
    "\n",
    "train_batches = make_batches(dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 300
    },
    "id": "7hTZY5EcZKJk",
    "outputId": "6508ee2b-23d8-4e05-e321-1059c0ab1420"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1, 2048, 512)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##Source :- https://www.tensorflow.org/text/tutorials/transformer \n",
    "def get_angles(pos, i, d_model):\n",
    "  angle_rates = 1 / np.power(10000, (2 * (i//2)) / np.float32(d_model))\n",
    "  return pos * angle_rates\n",
    "\n",
    "\n",
    "def positional_encoding(position, d_model):\n",
    "  angle_rads = get_angles(np.arange(position)[:, np.newaxis],\n",
    "                          np.arange(d_model)[np.newaxis, :],\n",
    "                          d_model)\n",
    "\n",
    "  # apply sin to even indices in the array; 2i\n",
    "  angle_rads[:, 0::2] = np.sin(angle_rads[:, 0::2])\n",
    "\n",
    "  # apply cos to odd indices in the array; 2i+1\n",
    "  angle_rads[:, 1::2] = np.cos(angle_rads[:, 1::2])\n",
    "\n",
    "  pos_encoding = angle_rads[np.newaxis, ...]\n",
    "\n",
    "  return tf.cast(pos_encoding, dtype=tf.float32)  \n",
    "\n",
    "\n",
    "\n",
    "def positional_encoding(position, d_model):\n",
    "  angle_rads = get_angles(np.arange(position)[:, np.newaxis],\n",
    "                          np.arange(d_model)[np.newaxis, :],\n",
    "                          d_model)\n",
    "\n",
    "  # apply sin to even indices in the array; 2i\n",
    "  angle_rads[:, 0::2] = np.sin(angle_rads[:, 0::2])\n",
    "\n",
    "  # apply cos to odd indices in the array; 2i+1\n",
    "  angle_rads[:, 1::2] = np.cos(angle_rads[:, 1::2])\n",
    "\n",
    "  pos_encoding = angle_rads[np.newaxis, ...]\n",
    "\n",
    "  return tf.cast(pos_encoding, dtype=tf.float32) \n",
    "\n",
    "\n",
    "n, d = 2048, 512\n",
    "pos_encoding = positional_encoding(n, d)\n",
    "print(pos_encoding.shape)\n",
    "pos_encoding = pos_encoding[0]\n",
    "\n",
    "# Juggle the dimensions for the plot\n",
    "pos_encoding = tf.reshape(pos_encoding, (n, d//2, 2))\n",
    "pos_encoding = tf.transpose(pos_encoding, (2, 1, 0))\n",
    "pos_encoding = tf.reshape(pos_encoding, (d, n))\n",
    "\n",
    "plt.pcolormesh(pos_encoding, cmap='RdBu')\n",
    "plt.ylabel('Depth')\n",
    "plt.xlabel('Position')\n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "id": "ty0OaJyKZS-Q"
   },
   "outputs": [],
   "source": [
    "##Source :- https://www.tensorflow.org/text/tutorials/transformer \n",
    "def create_padding_mask(seq):\n",
    "  seq = tf.cast(tf.math.equal(seq, 0), tf.float32)\n",
    "\n",
    "  # add extra dimensions to add the padding\n",
    "  # to the attention logits.\n",
    "  return seq[:, tf.newaxis, tf.newaxis, :]  # (batch_size, 1, 1, seq_len)\n",
    "\n",
    "def create_look_ahead_mask(size):\n",
    "  mask = 1 - tf.linalg.band_part(tf.ones((size, size)), -1, 0)\n",
    "  return mask  # (seq_len, seq_len)  \n",
    "\n",
    "\n",
    "def scaled_dot_product_attention(q, k, v, mask):\n",
    "  \"\"\"Calculate the attention weights.\n",
    "  q, k, v must have matching leading dimensions.\n",
    "  k, v must have matching penultimate dimension, i.e.: seq_len_k = seq_len_v.\n",
    "  The mask has different shapes depending on its type(padding or look ahead)\n",
    "  but it must be broadcastable for addition.\n",
    "\n",
    "  Args:\n",
    "    q: query shape == (..., seq_len_q, depth)\n",
    "    k: key shape == (..., seq_len_k, depth)\n",
    "    v: value shape == (..., seq_len_v, depth_v)\n",
    "    mask: Float tensor with shape broadcastable\n",
    "          to (..., seq_len_q, seq_len_k). Defaults to None.\n",
    "\n",
    "  Returns:\n",
    "    output, attention_weights\n",
    "  \"\"\"\n",
    "\n",
    "  matmul_qk = tf.matmul(q, k, transpose_b=True)  # (..., seq_len_q, seq_len_k)\n",
    "\n",
    "  # scale matmul_qk\n",
    "  dk = tf.cast(tf.shape(k)[-1], tf.float32)\n",
    "  scaled_attention_logits = matmul_qk / tf.math.sqrt(dk)\n",
    "\n",
    "  # add the mask to the scaled tensor.\n",
    "  if mask is not None:\n",
    "    scaled_attention_logits += (mask * -1e9)\n",
    "\n",
    "  # softmax is normalized on the last axis (seq_len_k) so that the scores\n",
    "  # add up to 1.\n",
    "  attention_weights = tf.nn.softmax(scaled_attention_logits, axis=-1)  # (..., seq_len_q, seq_len_k)\n",
    "\n",
    "  output = tf.matmul(attention_weights, v)  # (..., seq_len_q, depth_v)\n",
    "\n",
    "  return output, attention_weights\n",
    "\n",
    "\n",
    "class MultiHeadAttention(tf.keras.layers.Layer):\n",
    "  def __init__(self, d_model, num_heads):\n",
    "    super(MultiHeadAttention, self).__init__()\n",
    "    self.num_heads = num_heads\n",
    "    self.d_model = d_model\n",
    "\n",
    "    assert d_model % self.num_heads == 0\n",
    "\n",
    "    self.depth = d_model // self.num_heads\n",
    "\n",
    "    self.wq = tf.keras.layers.Dense(d_model)\n",
    "    self.wk = tf.keras.layers.Dense(d_model)\n",
    "    self.wv = tf.keras.layers.Dense(d_model)\n",
    "\n",
    "    self.dense = tf.keras.layers.Dense(d_model)\n",
    "\n",
    "  def split_heads(self, x, batch_size):\n",
    "    \"\"\"Split the last dimension into (num_heads, depth).\n",
    "    Transpose the result such that the shape is (batch_size, num_heads, seq_len, depth)\n",
    "    \"\"\"\n",
    "    x = tf.reshape(x, (batch_size, -1, self.num_heads, self.depth))\n",
    "    return tf.transpose(x, perm=[0, 2, 1, 3])\n",
    "\n",
    "  def call(self, v, k, q, mask):\n",
    "    batch_size = tf.shape(q)[0]\n",
    "\n",
    "    q = self.wq(q)  # (batch_size, seq_len, d_model)\n",
    "    k = self.wk(k)  # (batch_size, seq_len, d_model)\n",
    "    v = self.wv(v)  # (batch_size, seq_len, d_model)\n",
    "\n",
    "    q = self.split_heads(q, batch_size)  # (batch_size, num_heads, seq_len_q, depth)\n",
    "    k = self.split_heads(k, batch_size)  # (batch_size, num_heads, seq_len_k, depth)\n",
    "    v = self.split_heads(v, batch_size)  # (batch_size, num_heads, seq_len_v, depth)\n",
    "\n",
    "    # scaled_attention.shape == (batch_size, num_heads, seq_len_q, depth)\n",
    "    # attention_weights.shape == (batch_size, num_heads, seq_len_q, seq_len_k)\n",
    "    scaled_attention, attention_weights = scaled_dot_product_attention(\n",
    "        q, k, v, mask)\n",
    "\n",
    "    scaled_attention = tf.transpose(scaled_attention, perm=[0, 2, 1, 3])  # (batch_size, seq_len_q, num_heads, depth)\n",
    "\n",
    "    concat_attention = tf.reshape(scaled_attention,\n",
    "                                  (batch_size, -1, self.d_model))  # (batch_size, seq_len_q, d_model)\n",
    "\n",
    "    output = self.dense(concat_attention)  # (batch_size, seq_len_q, d_model)\n",
    "\n",
    "    return output, attention_weights\n",
    "\n",
    "\n",
    "def point_wise_feed_forward_network(d_model, dff):\n",
    "  return tf.keras.Sequential([\n",
    "      tf.keras.layers.Dense(dff, activation='relu'),  # (batch_size, seq_len, dff)\n",
    "      tf.keras.layers.Dense(d_model)  # (batch_size, seq_len, d_model)\n",
    "  ])\n",
    "\n",
    "\n",
    "\n",
    "class DecoderLayer(tf.keras.layers.Layer):\n",
    "  def __init__(self, d_model, num_heads, dff, rate=0.1):\n",
    "    super(DecoderLayer, self).__init__()\n",
    "\n",
    "    self.mha1 = MultiHeadAttention(d_model, num_heads)\n",
    "    self.mha2 = MultiHeadAttention(d_model, num_heads)\n",
    "\n",
    "    self.ffn = point_wise_feed_forward_network(d_model, dff)\n",
    "\n",
    "    self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n",
    "    self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n",
    "    self.layernorm3 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n",
    "\n",
    "    self.dropout1 = tf.keras.layers.Dropout(rate)\n",
    "    self.dropout2 = tf.keras.layers.Dropout(rate)\n",
    "    self.dropout3 = tf.keras.layers.Dropout(rate)\n",
    "\n",
    "  def call(self, x, enc_output, training,\n",
    "           look_ahead_mask, padding_mask):\n",
    "    # enc_output.shape == (batch_size, input_seq_len, d_model)\n",
    "\n",
    "    attn1, attn_weights_block1 = self.mha1(x, x, x, look_ahead_mask)  # (batch_size, target_seq_len, d_model)\n",
    "    attn1 = self.dropout1(attn1, training=training)\n",
    "    out1 = self.layernorm1(attn1 + x)\n",
    "\n",
    "    attn2, attn_weights_block2 = self.mha2(\n",
    "        enc_output, enc_output, out1, padding_mask)  # (batch_size, target_seq_len, d_model)\n",
    "    attn2 = self.dropout2(attn2, training=training)\n",
    "    out2 = self.layernorm2(attn2 + out1)  # (batch_size, target_seq_len, d_model)\n",
    "\n",
    "    ffn_output = self.ffn(out2)  # (batch_size, target_seq_len, d_model)\n",
    "    ffn_output = self.dropout3(ffn_output, training=training)\n",
    "    out3 = self.layernorm3(ffn_output + out2)  # (batch_size, target_seq_len, d_model)\n",
    "\n",
    "    return out3, attn_weights_block1, attn_weights_block2 \n",
    "\n",
    "\n",
    "class Decoder(tf.keras.layers.Layer):\n",
    "  def __init__(self, num_layers, d_model, num_heads, dff, target_vocab_size,\n",
    "               maximum_position_encoding, rate=0.1):\n",
    "    super(Decoder, self).__init__()\n",
    "\n",
    "    self.d_model = d_model\n",
    "    self.num_layers = num_layers\n",
    "\n",
    "    self.embedding = tf.keras.layers.Embedding(target_vocab_size, d_model)\n",
    "    self.pos_encoding = positional_encoding(maximum_position_encoding, d_model)\n",
    "\n",
    "    self.dec_layers = [DecoderLayer(d_model, num_heads, dff, rate)\n",
    "                       for _ in range(num_layers)]\n",
    "    self.dropout = tf.keras.layers.Dropout(rate)\n",
    "\n",
    "  def call(self, x, last,feature_map, training,\n",
    "           look_ahead_mask, padding_mask):\n",
    "\n",
    "    #seq_len = tf.shape(x)[1]\n",
    "    attention_weights = {}\n",
    "\n",
    "    x = self.embedding(x)  # (batch_size, target_seq_len, d_model)\n",
    "    x *= tf.math.sqrt(tf.cast(self.d_model, tf.float32))\n",
    "    x = tf.concat([last, x], 1)\n",
    "    seq_len = tf.shape(x)[1]\n",
    "    x += self.pos_encoding[:, :seq_len, :]\n",
    "\n",
    "    x = self.dropout(x, training=training)\n",
    "\n",
    "    for i in range(self.num_layers):\n",
    "      x, block1, block2 = self.dec_layers[i](x, feature_map, training,\n",
    "                                             look_ahead_mask, padding_mask)\n",
    "\n",
    "      attention_weights[f'decoder_layer{i+1}_block1'] = block1\n",
    "      attention_weights[f'decoder_layer{i+1}_block2'] = block2\n",
    "\n",
    "    # x.shape == (batch_size, target_seq_len, d_model)\n",
    "    return x, attention_weights\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "VUmdgZs4x19d",
    "outputId": "9b145b9c-8385-47e7-ee6f-a542be1d36e0"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/resnet/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5\n",
      "94773248/94765736 [==============================] - 1s 0us/step\n"
     ]
    }
   ],
   "source": [
    "#function creating modified_restnet50 \n",
    "modified_RestNet50 = tf.keras.applications.resnet.ResNet50(weights='imagenet',include_top=False,input_shape=([48, 160, 3]))\n",
    "def modified_restnet50():\n",
    "  model = tf.keras.Sequential()\n",
    "\n",
    "  model.add(modified_RestNet50)\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(512, (1, 1), activation = 'relu', name='block6_conv1'))\n",
    "\n",
    "  return model\n",
    "\n",
    "#funtion creating feature map \n",
    "def Extend():\n",
    "  model = tf.keras.Sequential()\n",
    "  model.add(Conv2D(512, (1, 1), activation = 'relu', name='block6_conv2'))\n",
    "  model.add(keras.layers.Reshape([90, 512]))\n",
    "\n",
    "  return model\n",
    "\n",
    "\n",
    "#function to create bottleneck   restnet50\n",
    "RestNet50 = tf.keras.applications.resnet.ResNet50(weights='imagenet',include_top=False,input_shape=([54, 135, 3]))\n",
    "def restnet50():\n",
    "  model = tf.keras.Sequential()\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv3'))\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv4'))\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv5'))\n",
    "  model.add(RestNet50)\n",
    "\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(512, (1, 1), activation = 'relu', name='block6_conv6'))\n",
    "\n",
    "\n",
    "  return model\n",
    "\n",
    "#function to create last layer bottleneck\n",
    "restNet = tf.keras.applications.resnet.ResNet50(weights='imagenet',include_top=False,input_shape=([54, 135, 3]))\n",
    "def restnet50_final():\n",
    "  model = tf.keras.Sequential()\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv7'))\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv8'))\n",
    "  model.add(UpSampling2D((3,3), interpolation = 'bilinear'))\n",
    "  model.add(Conv2D(3, (1, 1), activation = 'relu', name='block6_conv9'))\n",
    "  model.add(restNet)\n",
    "  model.add(Conv2D(512, (1, 4), activation = 'relu', name='block6_conv10'))\n",
    "  model.add(tf.keras.layers.AveragePooling2D(pool_size=(2, 2)))\n",
    "  model.add(keras.layers.Reshape([1, 512]))\n",
    "  model.add(tf.keras.layers.Dense(512,activation='relu'))\n",
    "\n",
    "\n",
    "  return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "id": "Y0khd1Q-ZzXK"
   },
   "outputs": [],
   "source": [
    "# making an instance for each function\n",
    "modified = modified_restnet50()  \n",
    "extend = Extend()\n",
    "bottleneck1 = restnet50()\n",
    "bottleneck2 = restnet50()\n",
    "bottleneck3 = restnet50()\n",
    "bottleneck4 = restnet50()\n",
    "bottleneck5 = restnet50()\n",
    "final = restnet50_final()\n",
    "\n",
    "class Transformer(tf.keras.Model):\n",
    "  def __init__(self, num_layers, d_model, num_heads, dff, input_vocab_size,\n",
    "               target_vocab_size, pe_input, pe_target, rate=0.1):\n",
    "    super(Transformer, self).__init__()\n",
    "\n",
    "    self.decoder = Decoder(num_layers, d_model, num_heads, dff,\n",
    "                           target_vocab_size, pe_target, rate)\n",
    "\n",
    "    self.final_layer = tf.keras.layers.Dense(target_vocab_size)\n",
    "\n",
    "  def call(self, inp, tar, training, enc_padding_mask,\n",
    "           look_ahead_mask, dec_padding_mask):\n",
    "    \n",
    "    generated_images1 = modified(inp, training=True)\n",
    "    feature_map = extend(generated_images1 , training=True)\n",
    "    bottle1 = bottleneck1(generated_images1 ,training=True )\n",
    "    sum = Add(name = 'add1')([generated_images1, bottle1])\n",
    "    bottle2 = bottleneck2(sum ,training=True )\n",
    "    sum = Add(name = 'add2')([sum, bottle2])\n",
    "    bottle3 = bottleneck3(sum ,training=True )\n",
    "    sum = Add(name = 'add3')([sum, bottle3])\n",
    "    bottle4 = bottleneck4(sum ,training=True )\n",
    "    sum = Add(name = 'add4')([sum, bottle4])\n",
    "    bottle5 = bottleneck5(sum ,training=True )\n",
    "    sum = Add(name = 'add4')([sum, bottle5])\n",
    "    last = final(sum , training=True)\n",
    "\n",
    "    # dec_output.shape == (batch_size, tar_seq_len, d_model)\n",
    "    dec_output, attention_weights = self.decoder(tar, last,feature_map, training, look_ahead_mask, dec_padding_mask)\n",
    "\n",
    "    final_output = self.final_layer(dec_output)  # (batch_size, tar_seq_len, target_vocab_size)\n",
    "\n",
    "    return final_output, attention_weights\n",
    "    #return enc_output  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 296
    },
    "id": "yAsainAE0OQh",
    "outputId": "b6722c83-ffe2-47bd-a931-7110aaa751cb"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Train Step')"
      ]
     },
     "execution_count": 14,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "transformer = Transformer(\n",
    "    num_layers=1, d_model=512, num_heads=4, dff=2048,\n",
    "    input_vocab_size=8500, target_vocab_size=40,\n",
    "    pe_input=10000, pe_target=6000)\n",
    "\n",
    "num_layers = 1      # number of layer used in model\n",
    "d_model = 512       # size of embedding dimension\n",
    "dff = 2048          # size of feed for network\n",
    "num_heads = 8       #size of multi heading \n",
    "dropout_rate = 0.1  #dropout rate\n",
    "\n",
    "class CustomSchedule(tf.keras.optimizers.schedules.LearningRateSchedule):\n",
    "  def __init__(self, d_model, warmup_steps=4000):\n",
    "    super(CustomSchedule, self).__init__()\n",
    "\n",
    "    self.d_model = d_model\n",
    "    self.d_model = tf.cast(self.d_model, tf.float32)\n",
    "\n",
    "    self.warmup_steps = warmup_steps\n",
    "\n",
    "  def __call__(self, step):\n",
    "    arg1 = tf.math.rsqrt(step)\n",
    "    arg2 = step * (self.warmup_steps ** -1.5)\n",
    "\n",
    "    return tf.math.rsqrt(self.d_model) * tf.math.minimum(arg1, arg2)\n",
    "\n",
    "\n",
    "learning_rate = CustomSchedule(d_model)\n",
    "\n",
    "\n",
    "temp_learning_rate_schedule = CustomSchedule(d_model)\n",
    "\n",
    "plt.plot(temp_learning_rate_schedule(tf.range(40000, dtype=tf.float32)))\n",
    "plt.ylabel(\"Learning Rate\")\n",
    "plt.xlabel(\"Train Step\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "id": "S9Ygx0ku0UL3"
   },
   "outputs": [],
   "source": [
    "loss_object = tf.keras.losses.SparseCategoricalCrossentropy(\n",
    "    from_logits=True, reduction='none')\n",
    "\n",
    "\n",
    "def loss_function(real, pred):\n",
    "  mask = tf.math.logical_not(tf.math.equal(real, 0))\n",
    "  loss_ = loss_object(real, pred)\n",
    "\n",
    "  mask = tf.cast(mask, dtype=loss_.dtype)\n",
    "  loss_ *= mask\n",
    "\n",
    "  return tf.reduce_sum(loss_)/tf.reduce_sum(mask)\n",
    "  return loss_\n",
    "\n",
    "\n",
    "def accuracy_function(real, pred):\n",
    "  real = tf.cast(real, dtype=tf.int64)\n",
    "  pred = tf.cast(pred, dtype=tf.int64)\n",
    "  accuracies = tf.equal(real, tf.argmax(pred, axis=2))\n",
    "\n",
    "  mask = tf.math.logical_not(tf.math.equal(real, 0))\n",
    "  accuracies = tf.math.logical_and(mask, accuracies)\n",
    "\n",
    "  accuracies = tf.cast(accuracies, dtype=tf.float32)\n",
    "  mask = tf.cast(mask, dtype=tf.float32)\n",
    "  return tf.reduce_sum(accuracies)/tf.reduce_sum(mask)\n",
    "\n",
    "#source:- https://machinelearningmastery.com/beam-search-decoder-natural-language-processing/\n",
    "def beam_search_decoder(data, k):\n",
    "    sequences = [[list(), 0.0]]\n",
    "    # walk over each step in sequence\n",
    "    for row in data:\n",
    "        all_candidates = list()\n",
    "        # expand each current candidate\n",
    "        for i in range(len(sequences)):\n",
    "            seq, score = sequences[i]\n",
    "            for j in range(len(row)):\n",
    "                candidate = [seq + [j], score - log(row[j])]\n",
    "                all_candidates.append(candidate)\n",
    "        # order all candidates by score\n",
    "        ordered = sorted(all_candidates, key=lambda tup:tup[1])\n",
    "        # select k best\n",
    "        sequences = ordered[:k]\n",
    "    return sequences\n",
    "\n",
    "\n",
    "train_loss = tf.keras.metrics.Mean(name='train_loss')\n",
    "train_accuracy = tf.keras.metrics.Mean(name='train_accuracy')\n",
    "\n",
    "def create_masks(tar):\n",
    "\n",
    "  # Used in the 1st attention block in the decoder.\n",
    "  # It is used to pad and mask future tokens in the input received by\n",
    "  # the decoder.\n",
    "  look_ahead_mask = create_look_ahead_mask(tf.shape(tar)[1])\n",
    "  dec_target_padding_mask = create_padding_mask(tar)\n",
    "  combined_mask = tf.maximum(dec_target_padding_mask, look_ahead_mask)\n",
    "\n",
    "  return combined_mask"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "id": "UvqqHPwL0Ys6"
   },
   "outputs": [],
   "source": [
    "trans_optimizer = tf.keras.optimizers.Adam(learning_rate, beta_1=0.9, beta_2=0.98,epsilon=1e-9)\n",
    "\n",
    "checkpoint_path = \"./checkpoint2/train\"\n",
    "ckpt = tf.train.Checkpoint(transformer=transformer,\n",
    "                           trans_optimizer=trans_optimizer)\n",
    "\n",
    "\n",
    "ckpt_manager = tf.train.CheckpointManager(ckpt, checkpoint_path, max_to_keep=5)\n",
    "\n",
    "# if a checkpoint exists, restore the latest checkpoint.\n",
    "if ckpt_manager.latest_checkpoint:\n",
    "  ckpt.restore(ckpt_manager.latest_checkpoint)\n",
    "  print('Latest checkpoint restored!!')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "id": "rBuWg8Zn0frX"
   },
   "outputs": [],
   "source": [
    "EPOCHS = 232\n",
    "\n",
    "@tf.function\n",
    "def train_step(inp, tar):\n",
    "  tar_inp = tar[:, :-1]\n",
    "  tar_real = tar\n",
    "\n",
    "  a = np.ones([10,1])\n",
    "  x = tf.concat([a, tar_inp], 1)\n",
    "\n",
    "  combined_mask = create_masks(x)\n",
    "\n",
    "  with tf.GradientTape() as tape:\n",
    "    predictions, _ = transformer(inp, tar_inp,\n",
    "                                 True,\n",
    "                                 None,\n",
    "                                 combined_mask,\n",
    "                                 None)\n",
    "    predictions = beam_search_decoder(predictions, 1)\n",
    "    \n",
    "    loss = loss_function(tar_real, predictions)\n",
    "  \n",
    "  gradients_trans = tape.gradient(loss, transformer.trainable_variables)\n",
    "  trans_optimizer.apply_gradients(zip(gradients_trans, transformer.trainable_variables))\n",
    "\n",
    "  train_loss(loss)\n",
    "  train_accuracy(accuracy_function(tar_real, predictions))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "NGcsYGph1RZI",
    "outputId": "31ec4bab-c4d1-4708-e94b-f770367e6a42"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1 Loss 0.9385 Accuracy 0.1577\n",
      "Time taken for 1 epoch: 107.40 secs\n",
      "\n",
      "Epoch 2 Loss 0.6229 Accuracy 0.2690\n",
      "Time taken for 1 epoch: 56.86 secs\n",
      "\n",
      "Epoch 3 Loss 0.5849 Accuracy 0.3096\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Epoch 4 Loss 0.5611 Accuracy 0.3327\n",
      "Time taken for 1 epoch: 57.02 secs\n",
      "\n",
      "Saving checkpoint for epoch 5 at ./checkpoint2/train/ckpt-1\n",
      "Epoch 5 Loss 0.5461 Accuracy 0.3484\n",
      "Time taken for 1 epoch: 57.66 secs\n",
      "\n",
      "Epoch 6 Loss 0.5389 Accuracy 0.3545\n",
      "Time taken for 1 epoch: 57.25 secs\n",
      "\n",
      "Epoch 7 Loss 0.5354 Accuracy 0.3578\n",
      "Time taken for 1 epoch: 57.14 secs\n",
      "\n",
      "Epoch 8 Loss 0.5384 Accuracy 0.3547\n",
      "Time taken for 1 epoch: 57.20 secs\n",
      "\n",
      "Epoch 9 Loss 0.5343 Accuracy 0.3562\n",
      "Time taken for 1 epoch: 57.09 secs\n",
      "\n",
      "Saving checkpoint for epoch 10 at ./checkpoint2/train/ckpt-2\n",
      "Epoch 10 Loss 0.5203 Accuracy 0.3720\n",
      "Time taken for 1 epoch: 57.23 secs\n",
      "\n",
      "Epoch 11 Loss 0.5088 Accuracy 0.3791\n",
      "Time taken for 1 epoch: 57.25 secs\n",
      "\n",
      "Epoch 12 Loss 0.4966 Accuracy 0.3952\n",
      "Time taken for 1 epoch: 57.14 secs\n",
      "\n",
      "Epoch 13 Loss 0.4873 Accuracy 0.3997\n",
      "Time taken for 1 epoch: 56.96 secs\n",
      "\n",
      "Epoch 14 Loss 0.4773 Accuracy 0.4131\n",
      "Time taken for 1 epoch: 56.89 secs\n",
      "\n",
      "Saving checkpoint for epoch 15 at ./checkpoint2/train/ckpt-3\n",
      "Epoch 15 Loss 0.4678 Accuracy 0.4208\n",
      "Time taken for 1 epoch: 57.28 secs\n",
      "\n",
      "Epoch 16 Loss 0.4616 Accuracy 0.4261\n",
      "Time taken for 1 epoch: 56.97 secs\n",
      "\n",
      "Epoch 17 Loss 0.4493 Accuracy 0.4349\n",
      "Time taken for 1 epoch: 56.85 secs\n",
      "\n",
      "Epoch 18 Loss 0.4408 Accuracy 0.4478\n",
      "Time taken for 1 epoch: 56.90 secs\n",
      "\n",
      "Epoch 19 Loss 0.4360 Accuracy 0.4516\n",
      "Time taken for 1 epoch: 56.97 secs\n",
      "\n",
      "Saving checkpoint for epoch 20 at ./checkpoint2/train/ckpt-4\n",
      "Epoch 20 Loss 0.4246 Accuracy 0.4644\n",
      "Time taken for 1 epoch: 57.27 secs\n",
      "\n",
      "Epoch 21 Loss 0.4179 Accuracy 0.4721\n",
      "Time taken for 1 epoch: 57.14 secs\n",
      "\n",
      "Epoch 22 Loss 0.4128 Accuracy 0.4783\n",
      "Time taken for 1 epoch: 56.99 secs\n",
      "\n",
      "Epoch 23 Loss 0.4057 Accuracy 0.4846\n",
      "Time taken for 1 epoch: 56.97 secs\n",
      "\n",
      "Epoch 24 Loss 0.3986 Accuracy 0.4925\n",
      "Time taken for 1 epoch: 57.08 secs\n",
      "\n",
      "Saving checkpoint for epoch 25 at ./checkpoint2/train/ckpt-5\n",
      "Epoch 25 Loss 0.3898 Accuracy 0.5022\n",
      "Time taken for 1 epoch: 57.43 secs\n",
      "\n",
      "Epoch 26 Loss 0.3855 Accuracy 0.5083\n",
      "Time taken for 1 epoch: 57.18 secs\n",
      "\n",
      "Epoch 27 Loss 0.3742 Accuracy 0.5167\n",
      "Time taken for 1 epoch: 56.98 secs\n",
      "\n",
      "Epoch 28 Loss 0.3657 Accuracy 0.5310\n",
      "Time taken for 1 epoch: 57.12 secs\n",
      "\n",
      "Epoch 29 Loss 0.3582 Accuracy 0.5356\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Saving checkpoint for epoch 30 at ./checkpoint2/train/ckpt-6\n",
      "Epoch 30 Loss 0.3515 Accuracy 0.5433\n",
      "Time taken for 1 epoch: 57.36 secs\n",
      "\n",
      "Epoch 31 Loss 0.3466 Accuracy 0.5484\n",
      "Time taken for 1 epoch: 57.14 secs\n",
      "\n",
      "Epoch 32 Loss 0.3415 Accuracy 0.5550\n",
      "Time taken for 1 epoch: 82.14 secs\n",
      "\n",
      "Epoch 33 Loss 0.3357 Accuracy 0.5614\n",
      "Time taken for 1 epoch: 57.47 secs\n",
      "\n",
      "Epoch 34 Loss 0.3301 Accuracy 0.5691\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Saving checkpoint for epoch 35 at ./checkpoint2/train/ckpt-7\n",
      "Epoch 35 Loss 0.3278 Accuracy 0.5748\n",
      "Time taken for 1 epoch: 57.20 secs\n",
      "\n",
      "Epoch 36 Loss 0.3206 Accuracy 0.5813\n",
      "Time taken for 1 epoch: 56.95 secs\n",
      "\n",
      "Epoch 37 Loss 0.3196 Accuracy 0.5837\n",
      "Time taken for 1 epoch: 56.42 secs\n",
      "\n",
      "Epoch 38 Loss 0.3115 Accuracy 0.5916\n",
      "Time taken for 1 epoch: 56.82 secs\n",
      "\n",
      "Epoch 39 Loss 0.3043 Accuracy 0.6001\n",
      "Time taken for 1 epoch: 57.16 secs\n",
      "\n",
      "Saving checkpoint for epoch 40 at ./checkpoint2/train/ckpt-8\n",
      "Epoch 40 Loss 0.3043 Accuracy 0.5995\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 41 Loss 0.2964 Accuracy 0.6083\n",
      "Time taken for 1 epoch: 56.95 secs\n",
      "\n",
      "Epoch 42 Loss 0.2933 Accuracy 0.6151\n",
      "Time taken for 1 epoch: 56.63 secs\n",
      "\n",
      "Epoch 43 Loss 0.2916 Accuracy 0.6155\n",
      "Time taken for 1 epoch: 56.42 secs\n",
      "\n",
      "Epoch 44 Loss 0.2842 Accuracy 0.6265\n",
      "Time taken for 1 epoch: 56.40 secs\n",
      "\n",
      "Saving checkpoint for epoch 45 at ./checkpoint2/train/ckpt-9\n",
      "Epoch 45 Loss 0.2819 Accuracy 0.6267\n",
      "Time taken for 1 epoch: 56.72 secs\n",
      "\n",
      "Epoch 46 Loss 0.2763 Accuracy 0.6338\n",
      "Time taken for 1 epoch: 56.62 secs\n",
      "\n",
      "Epoch 47 Loss 0.2731 Accuracy 0.6377\n",
      "Time taken for 1 epoch: 56.66 secs\n",
      "\n",
      "Epoch 48 Loss 0.2691 Accuracy 0.6433\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 49 Loss 0.2625 Accuracy 0.6505\n",
      "Time taken for 1 epoch: 57.04 secs\n",
      "\n",
      "Saving checkpoint for epoch 50 at ./checkpoint2/train/ckpt-10\n",
      "Epoch 50 Loss 0.2586 Accuracy 0.6585\n",
      "Time taken for 1 epoch: 57.08 secs\n",
      "\n",
      "Epoch 51 Loss 0.2604 Accuracy 0.6549\n",
      "Time taken for 1 epoch: 57.07 secs\n",
      "\n",
      "Epoch 52 Loss 0.2530 Accuracy 0.6638\n",
      "Time taken for 1 epoch: 56.94 secs\n",
      "\n",
      "Epoch 53 Loss 0.2510 Accuracy 0.6662\n",
      "Time taken for 1 epoch: 56.81 secs\n",
      "\n",
      "Epoch 54 Loss 0.2458 Accuracy 0.6747\n",
      "Time taken for 1 epoch: 56.69 secs\n",
      "\n",
      "Saving checkpoint for epoch 55 at ./checkpoint2/train/ckpt-11\n",
      "Epoch 55 Loss 0.2446 Accuracy 0.6741\n",
      "Time taken for 1 epoch: 57.09 secs\n",
      "\n",
      "Epoch 56 Loss 0.2428 Accuracy 0.6779\n",
      "Time taken for 1 epoch: 56.97 secs\n",
      "\n",
      "Epoch 57 Loss 0.2410 Accuracy 0.6809\n",
      "Time taken for 1 epoch: 56.79 secs\n",
      "\n",
      "Epoch 58 Loss 0.2373 Accuracy 0.6830\n",
      "Time taken for 1 epoch: 56.79 secs\n",
      "\n",
      "Epoch 59 Loss 0.2342 Accuracy 0.6896\n",
      "Time taken for 1 epoch: 56.79 secs\n",
      "\n",
      "Saving checkpoint for epoch 60 at ./checkpoint2/train/ckpt-12\n",
      "Epoch 60 Loss 0.2268 Accuracy 0.6983\n",
      "Time taken for 1 epoch: 56.99 secs\n",
      "\n",
      "Epoch 61 Loss 0.2301 Accuracy 0.6941\n",
      "Time taken for 1 epoch: 56.67 secs\n",
      "\n",
      "Epoch 62 Loss 0.2244 Accuracy 0.7018\n",
      "Time taken for 1 epoch: 56.61 secs\n",
      "\n",
      "Epoch 63 Loss 0.2252 Accuracy 0.7022\n",
      "Time taken for 1 epoch: 56.68 secs\n",
      "\n",
      "Epoch 64 Loss 0.2228 Accuracy 0.7063\n",
      "Time taken for 1 epoch: 56.67 secs\n",
      "\n",
      "Saving checkpoint for epoch 65 at ./checkpoint2/train/ckpt-13\n",
      "Epoch 65 Loss 0.2149 Accuracy 0.7135\n",
      "Time taken for 1 epoch: 57.02 secs\n",
      "\n",
      "Epoch 66 Loss 0.2121 Accuracy 0.7155\n",
      "Time taken for 1 epoch: 56.76 secs\n",
      "\n",
      "Epoch 67 Loss 0.2127 Accuracy 0.7167\n",
      "Time taken for 1 epoch: 57.18 secs\n",
      "\n",
      "Epoch 68 Loss 0.2132 Accuracy 0.7168\n",
      "Time taken for 1 epoch: 57.24 secs\n",
      "\n",
      "Epoch 69 Loss 0.2097 Accuracy 0.7200\n",
      "Time taken for 1 epoch: 56.97 secs\n",
      "\n",
      "Saving checkpoint for epoch 70 at ./checkpoint2/train/ckpt-14\n",
      "Epoch 70 Loss 0.2079 Accuracy 0.7244\n",
      "Time taken for 1 epoch: 57.40 secs\n",
      "\n",
      "Epoch 71 Loss 0.2040 Accuracy 0.7237\n",
      "Time taken for 1 epoch: 57.45 secs\n",
      "\n",
      "Epoch 72 Loss 0.2050 Accuracy 0.7292\n",
      "Time taken for 1 epoch: 57.20 secs\n",
      "\n",
      "Epoch 73 Loss 0.2027 Accuracy 0.7315\n",
      "Time taken for 1 epoch: 57.18 secs\n",
      "\n",
      "Epoch 74 Loss 0.2000 Accuracy 0.7338\n",
      "Time taken for 1 epoch: 57.12 secs\n",
      "\n",
      "Saving checkpoint for epoch 75 at ./checkpoint2/train/ckpt-15\n",
      "Epoch 75 Loss 0.1985 Accuracy 0.7367\n",
      "Time taken for 1 epoch: 57.26 secs\n",
      "\n",
      "Epoch 76 Loss 0.1963 Accuracy 0.7358\n",
      "Time taken for 1 epoch: 57.32 secs\n",
      "\n",
      "Epoch 77 Loss 0.1938 Accuracy 0.7408\n",
      "Time taken for 1 epoch: 57.32 secs\n",
      "\n",
      "Epoch 78 Loss 0.1917 Accuracy 0.7468\n",
      "Time taken for 1 epoch: 57.04 secs\n",
      "\n",
      "Epoch 79 Loss 0.1916 Accuracy 0.7421\n",
      "Time taken for 1 epoch: 57.16 secs\n",
      "\n",
      "Saving checkpoint for epoch 80 at ./checkpoint2/train/ckpt-16\n",
      "Epoch 80 Loss 0.1902 Accuracy 0.7495\n",
      "Time taken for 1 epoch: 57.47 secs\n",
      "\n",
      "Epoch 81 Loss 0.1879 Accuracy 0.7474\n",
      "Time taken for 1 epoch: 57.32 secs\n",
      "\n",
      "Epoch 82 Loss 0.1873 Accuracy 0.7513\n",
      "Time taken for 1 epoch: 57.32 secs\n",
      "\n",
      "Epoch 83 Loss 0.1829 Accuracy 0.7566\n",
      "Time taken for 1 epoch: 57.08 secs\n",
      "\n",
      "Epoch 84 Loss 0.1831 Accuracy 0.7554\n",
      "Time taken for 1 epoch: 57.40 secs\n",
      "\n",
      "Saving checkpoint for epoch 85 at ./checkpoint2/train/ckpt-17\n",
      "Epoch 85 Loss 0.1811 Accuracy 0.7550\n",
      "Time taken for 1 epoch: 57.39 secs\n",
      "\n",
      "Epoch 86 Loss 0.1784 Accuracy 0.7629\n",
      "Time taken for 1 epoch: 57.01 secs\n",
      "\n",
      "Epoch 87 Loss 0.1775 Accuracy 0.7636\n",
      "Time taken for 1 epoch: 57.19 secs\n",
      "\n",
      "Epoch 88 Loss 0.1766 Accuracy 0.7628\n",
      "Time taken for 1 epoch: 57.20 secs\n",
      "\n",
      "Epoch 89 Loss 0.1756 Accuracy 0.7673\n",
      "Time taken for 1 epoch: 57.19 secs\n",
      "\n",
      "Saving checkpoint for epoch 90 at ./checkpoint2/train/ckpt-18\n",
      "Epoch 90 Loss 0.1764 Accuracy 0.7656\n",
      "Time taken for 1 epoch: 57.21 secs\n",
      "\n",
      "Epoch 91 Loss 0.1715 Accuracy 0.7726\n",
      "Time taken for 1 epoch: 57.20 secs\n",
      "\n",
      "Epoch 92 Loss 0.1744 Accuracy 0.7670\n",
      "Time taken for 1 epoch: 57.22 secs\n",
      "\n",
      "Epoch 93 Loss 0.1728 Accuracy 0.7688\n",
      "Time taken for 1 epoch: 57.23 secs\n",
      "\n",
      "Epoch 94 Loss 0.1732 Accuracy 0.7685\n",
      "Time taken for 1 epoch: 57.16 secs\n",
      "\n",
      "Saving checkpoint for epoch 95 at ./checkpoint2/train/ckpt-19\n",
      "Epoch 95 Loss 0.1674 Accuracy 0.7770\n",
      "Time taken for 1 epoch: 57.25 secs\n",
      "\n",
      "Epoch 96 Loss 0.1683 Accuracy 0.7755\n",
      "Time taken for 1 epoch: 57.29 secs\n",
      "\n",
      "Epoch 97 Loss 0.1677 Accuracy 0.7752\n",
      "Time taken for 1 epoch: 57.12 secs\n",
      "\n",
      "Epoch 98 Loss 0.1660 Accuracy 0.7804\n",
      "Time taken for 1 epoch: 57.08 secs\n",
      "\n",
      "Epoch 99 Loss 0.1621 Accuracy 0.7847\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Saving checkpoint for epoch 100 at ./checkpoint2/train/ckpt-20\n",
      "Epoch 100 Loss 0.1633 Accuracy 0.7832\n",
      "Time taken for 1 epoch: 57.46 secs\n",
      "\n",
      "Epoch 101 Loss 0.1635 Accuracy 0.7823\n",
      "Time taken for 1 epoch: 57.21 secs\n",
      "\n",
      "Epoch 102 Loss 0.1594 Accuracy 0.7861\n",
      "Time taken for 1 epoch: 57.16 secs\n",
      "\n",
      "Epoch 103 Loss 0.1623 Accuracy 0.7859\n",
      "Time taken for 1 epoch: 57.29 secs\n",
      "\n",
      "Epoch 104 Loss 0.1620 Accuracy 0.7861\n",
      "Time taken for 1 epoch: 57.35 secs\n",
      "\n",
      "Saving checkpoint for epoch 105 at ./checkpoint2/train/ckpt-21\n",
      "Epoch 105 Loss 0.1578 Accuracy 0.7890\n",
      "Time taken for 1 epoch: 57.10 secs\n",
      "\n",
      "Epoch 106 Loss 0.1572 Accuracy 0.7918\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Epoch 107 Loss 0.1568 Accuracy 0.7895\n",
      "Time taken for 1 epoch: 56.53 secs\n",
      "\n",
      "Epoch 108 Loss 0.1552 Accuracy 0.7918\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Epoch 109 Loss 0.1541 Accuracy 0.7948\n",
      "Time taken for 1 epoch: 56.64 secs\n",
      "\n",
      "Saving checkpoint for epoch 110 at ./checkpoint2/train/ckpt-22\n",
      "Epoch 110 Loss 0.1542 Accuracy 0.7925\n",
      "Time taken for 1 epoch: 56.88 secs\n",
      "\n",
      "Epoch 111 Loss 0.1498 Accuracy 0.7992\n",
      "Time taken for 1 epoch: 56.73 secs\n",
      "\n",
      "Epoch 112 Loss 0.1502 Accuracy 0.7998\n",
      "Time taken for 1 epoch: 56.66 secs\n",
      "\n",
      "Epoch 113 Loss 0.1484 Accuracy 0.8006\n",
      "Time taken for 1 epoch: 56.69 secs\n",
      "\n",
      "Epoch 114 Loss 0.1491 Accuracy 0.8004\n",
      "Time taken for 1 epoch: 56.72 secs\n",
      "\n",
      "Saving checkpoint for epoch 115 at ./checkpoint2/train/ckpt-23\n",
      "Epoch 115 Loss 0.1498 Accuracy 0.8011\n",
      "Time taken for 1 epoch: 57.04 secs\n",
      "\n",
      "Epoch 116 Loss 0.1475 Accuracy 0.8036\n",
      "Time taken for 1 epoch: 56.82 secs\n",
      "\n",
      "Epoch 117 Loss 0.1451 Accuracy 0.8076\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 118 Loss 0.1461 Accuracy 0.8053\n",
      "Time taken for 1 epoch: 56.72 secs\n",
      "\n",
      "Epoch 119 Loss 0.1446 Accuracy 0.8077\n",
      "Time taken for 1 epoch: 56.54 secs\n",
      "\n",
      "Saving checkpoint for epoch 120 at ./checkpoint2/train/ckpt-24\n",
      "Epoch 120 Loss 0.1434 Accuracy 0.8086\n",
      "Time taken for 1 epoch: 56.70 secs\n",
      "\n",
      "Epoch 121 Loss 0.1436 Accuracy 0.8106\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Epoch 122 Loss 0.1412 Accuracy 0.8116\n",
      "Time taken for 1 epoch: 56.52 secs\n",
      "\n",
      "Epoch 123 Loss 0.1397 Accuracy 0.8151\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Epoch 124 Loss 0.1385 Accuracy 0.8155\n",
      "Time taken for 1 epoch: 56.44 secs\n",
      "\n",
      "Saving checkpoint for epoch 125 at ./checkpoint2/train/ckpt-25\n",
      "Epoch 125 Loss 0.1426 Accuracy 0.8125\n",
      "Time taken for 1 epoch: 82.42 secs\n",
      "\n",
      "Epoch 126 Loss 0.1408 Accuracy 0.8125\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Epoch 127 Loss 0.1374 Accuracy 0.8178\n",
      "Time taken for 1 epoch: 56.25 secs\n",
      "\n",
      "Epoch 128 Loss 0.1392 Accuracy 0.8174\n",
      "Time taken for 1 epoch: 56.52 secs\n",
      "\n",
      "Epoch 129 Loss 0.1362 Accuracy 0.8201\n",
      "Time taken for 1 epoch: 56.46 secs\n",
      "\n",
      "Saving checkpoint for epoch 130 at ./checkpoint2/train/ckpt-26\n",
      "Epoch 130 Loss 0.1371 Accuracy 0.8193\n",
      "Time taken for 1 epoch: 56.69 secs\n",
      "\n",
      "Epoch 131 Loss 0.1329 Accuracy 0.8238\n",
      "Time taken for 1 epoch: 56.53 secs\n",
      "\n",
      "Epoch 132 Loss 0.1341 Accuracy 0.8218\n",
      "Time taken for 1 epoch: 56.49 secs\n",
      "\n",
      "Epoch 133 Loss 0.1370 Accuracy 0.8172\n",
      "Time taken for 1 epoch: 56.47 secs\n",
      "\n",
      "Epoch 134 Loss 0.1352 Accuracy 0.8207\n",
      "Time taken for 1 epoch: 56.53 secs\n",
      "\n",
      "Saving checkpoint for epoch 135 at ./checkpoint2/train/ckpt-27\n",
      "Epoch 135 Loss 0.1363 Accuracy 0.8195\n",
      "Time taken for 1 epoch: 57.71 secs\n",
      "\n",
      "Epoch 136 Loss 0.1340 Accuracy 0.8228\n",
      "Time taken for 1 epoch: 57.62 secs\n",
      "\n",
      "Epoch 137 Loss 0.1308 Accuracy 0.8254\n",
      "Time taken for 1 epoch: 57.28 secs\n",
      "\n",
      "Epoch 138 Loss 0.1303 Accuracy 0.8263\n",
      "Time taken for 1 epoch: 57.50 secs\n",
      "\n",
      "Epoch 139 Loss 0.1291 Accuracy 0.8282\n",
      "Time taken for 1 epoch: 57.57 secs\n",
      "\n",
      "Saving checkpoint for epoch 140 at ./checkpoint2/train/ckpt-28\n",
      "Epoch 140 Loss 0.1308 Accuracy 0.8254\n",
      "Time taken for 1 epoch: 57.88 secs\n",
      "\n",
      "Epoch 141 Loss 0.1282 Accuracy 0.8282\n",
      "Time taken for 1 epoch: 56.94 secs\n",
      "\n",
      "Epoch 142 Loss 0.1297 Accuracy 0.8282\n",
      "Time taken for 1 epoch: 57.08 secs\n",
      "\n",
      "Epoch 143 Loss 0.1310 Accuracy 0.8245\n",
      "Time taken for 1 epoch: 56.79 secs\n",
      "\n",
      "Epoch 144 Loss 0.1261 Accuracy 0.8330\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Saving checkpoint for epoch 145 at ./checkpoint2/train/ckpt-29\n",
      "Epoch 145 Loss 0.1290 Accuracy 0.8286\n",
      "Time taken for 1 epoch: 56.85 secs\n",
      "\n",
      "Epoch 146 Loss 0.1270 Accuracy 0.8300\n",
      "Time taken for 1 epoch: 56.55 secs\n",
      "\n",
      "Epoch 147 Loss 0.1259 Accuracy 0.8329\n",
      "Time taken for 1 epoch: 56.53 secs\n",
      "\n",
      "Epoch 148 Loss 0.1273 Accuracy 0.8293\n",
      "Time taken for 1 epoch: 56.63 secs\n",
      "\n",
      "Epoch 149 Loss 0.1248 Accuracy 0.8352\n",
      "Time taken for 1 epoch: 56.66 secs\n",
      "\n",
      "Saving checkpoint for epoch 150 at ./checkpoint2/train/ckpt-30\n",
      "Epoch 150 Loss 0.1264 Accuracy 0.8311\n",
      "Time taken for 1 epoch: 56.81 secs\n",
      "\n",
      "Epoch 151 Loss 0.1264 Accuracy 0.8323\n",
      "Time taken for 1 epoch: 56.67 secs\n",
      "\n",
      "Epoch 152 Loss 0.1197 Accuracy 0.8405\n",
      "Time taken for 1 epoch: 56.59 secs\n",
      "\n",
      "Epoch 153 Loss 0.1217 Accuracy 0.8380\n",
      "Time taken for 1 epoch: 56.60 secs\n",
      "\n",
      "Epoch 154 Loss 0.1218 Accuracy 0.8375\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Saving checkpoint for epoch 155 at ./checkpoint2/train/ckpt-31\n",
      "Epoch 155 Loss 0.1232 Accuracy 0.8337\n",
      "Time taken for 1 epoch: 56.73 secs\n",
      "\n",
      "Epoch 156 Loss 0.1202 Accuracy 0.8416\n",
      "Time taken for 1 epoch: 56.67 secs\n",
      "\n",
      "Epoch 157 Loss 0.1246 Accuracy 0.8357\n",
      "Time taken for 1 epoch: 56.48 secs\n",
      "\n",
      "Epoch 158 Loss 0.1224 Accuracy 0.8366\n",
      "Time taken for 1 epoch: 56.34 secs\n",
      "\n",
      "Epoch 159 Loss 0.1184 Accuracy 0.8397\n",
      "Time taken for 1 epoch: 56.53 secs\n",
      "\n",
      "Saving checkpoint for epoch 160 at ./checkpoint2/train/ckpt-32\n",
      "Epoch 160 Loss 0.1206 Accuracy 0.8417\n",
      "Time taken for 1 epoch: 56.70 secs\n",
      "\n",
      "Epoch 161 Loss 0.1196 Accuracy 0.8394\n",
      "Time taken for 1 epoch: 56.57 secs\n",
      "\n",
      "Epoch 162 Loss 0.1205 Accuracy 0.8392\n",
      "Time taken for 1 epoch: 56.59 secs\n",
      "\n",
      "Epoch 163 Loss 0.1181 Accuracy 0.8429\n",
      "Time taken for 1 epoch: 56.52 secs\n",
      "\n",
      "Epoch 164 Loss 0.1160 Accuracy 0.8449\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Saving checkpoint for epoch 165 at ./checkpoint2/train/ckpt-33\n",
      "Epoch 165 Loss 0.1138 Accuracy 0.8478\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Epoch 166 Loss 0.1159 Accuracy 0.8471\n",
      "Time taken for 1 epoch: 56.54 secs\n",
      "\n",
      "Epoch 167 Loss 0.1135 Accuracy 0.8485\n",
      "Time taken for 1 epoch: 56.47 secs\n",
      "\n",
      "Epoch 168 Loss 0.1135 Accuracy 0.8505\n",
      "Time taken for 1 epoch: 56.46 secs\n",
      "\n",
      "Epoch 169 Loss 0.1170 Accuracy 0.8434\n",
      "Time taken for 1 epoch: 56.47 secs\n",
      "\n",
      "Saving checkpoint for epoch 170 at ./checkpoint2/train/ckpt-34\n",
      "Epoch 170 Loss 0.1140 Accuracy 0.8501\n",
      "Time taken for 1 epoch: 56.78 secs\n",
      "\n",
      "Epoch 171 Loss 0.1116 Accuracy 0.8518\n",
      "Time taken for 1 epoch: 56.67 secs\n",
      "\n",
      "Epoch 172 Loss 0.1142 Accuracy 0.8486\n",
      "Time taken for 1 epoch: 56.88 secs\n",
      "\n",
      "Epoch 173 Loss 0.1104 Accuracy 0.8511\n",
      "Time taken for 1 epoch: 56.58 secs\n",
      "\n",
      "Epoch 174 Loss 0.1119 Accuracy 0.8510\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Saving checkpoint for epoch 175 at ./checkpoint2/train/ckpt-35\n",
      "Epoch 175 Loss 0.1123 Accuracy 0.8492\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 176 Loss 0.1118 Accuracy 0.8502\n",
      "Time taken for 1 epoch: 56.60 secs\n",
      "\n",
      "Epoch 177 Loss 0.1110 Accuracy 0.8506\n",
      "Time taken for 1 epoch: 56.52 secs\n",
      "\n",
      "Epoch 178 Loss 0.1088 Accuracy 0.8553\n",
      "Time taken for 1 epoch: 56.49 secs\n",
      "\n",
      "Epoch 179 Loss 0.1102 Accuracy 0.8528\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Saving checkpoint for epoch 180 at ./checkpoint2/train/ckpt-36\n",
      "Epoch 180 Loss 0.1093 Accuracy 0.8533\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 181 Loss 0.1118 Accuracy 0.8532\n",
      "Time taken for 1 epoch: 56.92 secs\n",
      "\n",
      "Epoch 182 Loss 0.1080 Accuracy 0.8564\n",
      "Time taken for 1 epoch: 56.70 secs\n",
      "\n",
      "Epoch 183 Loss 0.1088 Accuracy 0.8559\n",
      "Time taken for 1 epoch: 56.48 secs\n",
      "\n",
      "Epoch 184 Loss 0.1094 Accuracy 0.8569\n",
      "Time taken for 1 epoch: 56.47 secs\n",
      "\n",
      "Saving checkpoint for epoch 185 at ./checkpoint2/train/ckpt-37\n",
      "Epoch 185 Loss 0.1048 Accuracy 0.8600\n",
      "Time taken for 1 epoch: 56.89 secs\n",
      "\n",
      "Epoch 186 Loss 0.1049 Accuracy 0.8609\n",
      "Time taken for 1 epoch: 56.90 secs\n",
      "\n",
      "Epoch 187 Loss 0.1042 Accuracy 0.8610\n",
      "Time taken for 1 epoch: 56.57 secs\n",
      "\n",
      "Epoch 188 Loss 0.1076 Accuracy 0.8559\n",
      "Time taken for 1 epoch: 56.54 secs\n",
      "\n",
      "Epoch 189 Loss 0.1067 Accuracy 0.8577\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Saving checkpoint for epoch 190 at ./checkpoint2/train/ckpt-38\n",
      "Epoch 190 Loss 0.1052 Accuracy 0.8591\n",
      "Time taken for 1 epoch: 56.75 secs\n",
      "\n",
      "Epoch 191 Loss 0.1082 Accuracy 0.8551\n",
      "Time taken for 1 epoch: 56.49 secs\n",
      "\n",
      "Epoch 192 Loss 0.1032 Accuracy 0.8629\n",
      "Time taken for 1 epoch: 56.48 secs\n",
      "\n",
      "Epoch 193 Loss 0.1044 Accuracy 0.8596\n",
      "Time taken for 1 epoch: 56.49 secs\n",
      "\n",
      "Epoch 194 Loss 0.1023 Accuracy 0.8636\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Saving checkpoint for epoch 195 at ./checkpoint2/train/ckpt-39\n",
      "Epoch 195 Loss 0.1030 Accuracy 0.8622\n",
      "Time taken for 1 epoch: 56.76 secs\n",
      "\n",
      "Epoch 196 Loss 0.1047 Accuracy 0.8576\n",
      "Time taken for 1 epoch: 56.55 secs\n",
      "\n",
      "Epoch 197 Loss 0.1028 Accuracy 0.8627\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Epoch 198 Loss 0.1001 Accuracy 0.8668\n",
      "Time taken for 1 epoch: 56.59 secs\n",
      "\n",
      "Epoch 199 Loss 0.1050 Accuracy 0.8609\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Saving checkpoint for epoch 200 at ./checkpoint2/train/ckpt-40\n",
      "Epoch 200 Loss 0.1011 Accuracy 0.8655\n",
      "Time taken for 1 epoch: 56.79 secs\n",
      "\n",
      "Epoch 201 Loss 0.1017 Accuracy 0.8636\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Epoch 202 Loss 0.0999 Accuracy 0.8680\n",
      "Time taken for 1 epoch: 56.52 secs\n",
      "\n",
      "Epoch 203 Loss 0.1009 Accuracy 0.8657\n",
      "Time taken for 1 epoch: 56.54 secs\n",
      "\n",
      "Epoch 204 Loss 0.1016 Accuracy 0.8638\n",
      "Time taken for 1 epoch: 56.56 secs\n",
      "\n",
      "Saving checkpoint for epoch 205 at ./checkpoint2/train/ckpt-41\n",
      "Epoch 205 Loss 0.1003 Accuracy 0.8650\n",
      "Time taken for 1 epoch: 56.78 secs\n",
      "\n",
      "Epoch 206 Loss 0.0993 Accuracy 0.8683\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Epoch 207 Loss 0.1007 Accuracy 0.8661\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Epoch 208 Loss 0.1027 Accuracy 0.8645\n",
      "Time taken for 1 epoch: 56.54 secs\n",
      "\n",
      "Epoch 209 Loss 0.0990 Accuracy 0.8677\n",
      "Time taken for 1 epoch: 56.51 secs\n",
      "\n",
      "Saving checkpoint for epoch 210 at ./checkpoint2/train/ckpt-42\n",
      "Epoch 210 Loss 0.0992 Accuracy 0.8681\n",
      "Time taken for 1 epoch: 56.72 secs\n",
      "\n",
      "Epoch 211 Loss 0.0988 Accuracy 0.8691\n",
      "Time taken for 1 epoch: 56.63 secs\n",
      "\n",
      "Epoch 212 Loss 0.0974 Accuracy 0.8692\n",
      "Time taken for 1 epoch: 56.47 secs\n",
      "\n",
      "Epoch 213 Loss 0.0973 Accuracy 0.8701\n",
      "Time taken for 1 epoch: 56.50 secs\n",
      "\n",
      "Epoch 214 Loss 0.0973 Accuracy 0.8710\n",
      "Time taken for 1 epoch: 56.49 secs\n",
      "\n",
      "Saving checkpoint for epoch 215 at ./checkpoint2/train/ckpt-43\n",
      "Epoch 215 Loss 0.0964 Accuracy 0.8714\n",
      "Time taken for 1 epoch: 56.76 secs\n",
      "\n",
      "Epoch 216 Loss 0.0952 Accuracy 0.8715\n",
      "Time taken for 1 epoch: 56.65 secs\n",
      "\n",
      "Epoch 217 Loss 0.0989 Accuracy 0.8689\n",
      "Time taken for 1 epoch: 57.02 secs\n",
      "\n",
      "Epoch 218 Loss 0.0959 Accuracy 0.8751\n",
      "Time taken for 1 epoch: 57.35 secs\n",
      "\n",
      "Epoch 219 Loss 0.0966 Accuracy 0.8715\n",
      "Time taken for 1 epoch: 57.16 secs\n",
      "\n",
      "Saving checkpoint for epoch 220 at ./checkpoint2/train/ckpt-44\n",
      "Epoch 220 Loss 0.0973 Accuracy 0.8700\n",
      "Time taken for 1 epoch: 57.50 secs\n",
      "\n",
      "Epoch 221 Loss 0.0956 Accuracy 0.8714\n",
      "Time taken for 1 epoch: 56.69 secs\n",
      "\n",
      "Epoch 222 Loss 0.0950 Accuracy 0.8723\n",
      "Time taken for 1 epoch: 56.80 secs\n",
      "\n",
      "Epoch 223 Loss 0.0957 Accuracy 0.8704\n",
      "Time taken for 1 epoch: 56.55 secs\n",
      "\n",
      "Epoch 224 Loss 0.0940 Accuracy 0.8754\n",
      "Time taken for 1 epoch: 56.57 secs\n",
      "\n",
      "Saving checkpoint for epoch 225 at ./checkpoint2/train/ckpt-45\n",
      "Epoch 225 Loss 0.0959 Accuracy 0.8717\n",
      "Time taken for 1 epoch: 57.28 secs\n",
      "\n",
      "Epoch 226 Loss 0.0940 Accuracy 0.8770\n",
      "Time taken for 1 epoch: 57.23 secs\n",
      "\n",
      "Epoch 227 Loss 0.0929 Accuracy 0.8734\n",
      "Time taken for 1 epoch: 57.11 secs\n",
      "\n",
      "Epoch 228 Loss 0.0921 Accuracy 0.8751\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Epoch 229 Loss 0.0928 Accuracy 0.8747\n",
      "Time taken for 1 epoch: 57.15 secs\n",
      "\n",
      "Saving checkpoint for epoch 230 at ./checkpoint2/train/ckpt-46\n",
      "Epoch 230 Loss 0.0916 Accuracy 0.8771\n",
      "Time taken for 1 epoch: 57.37 secs\n",
      "\n",
      "Epoch 231 Loss 0.0934 Accuracy 0.8752\n",
      "Time taken for 1 epoch: 57.23 secs\n",
      "\n",
      "Epoch 232 Loss 0.0903 Accuracy 0.8791\n",
      "Time taken for 1 epoch: 57.24 secs\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for epoch in range(EPOCHS):\n",
    "  start = time.time()\n",
    "\n",
    "  train_loss.reset_states()\n",
    "  train_accuracy.reset_states()\n",
    "\n",
    "  # inp -> image, tar -> word character\n",
    "  for (batch, (inp, tar)) in enumerate(train_batches):\n",
    "    train_step(inp, tar)\n",
    "\n",
    "  if (epoch + 1) % 5 == 0:\n",
    "    ckpt_save_path = ckpt_manager.save()\n",
    "    print(f'Saving checkpoint for epoch {epoch+1} at {ckpt_save_path}')\n",
    "\n",
    "  print(f'Epoch {epoch + 1} Loss {train_loss.result():.4f} Accuracy {train_accuracy.result():.4f}')\n",
    "\n",
    "  print(f'Time taken for 1 epoch: {time.time() - start:.2f} secs\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "id": "ColowVz1dfjT"
   },
   "outputs": [],
   "source": [
    "#function to evaluate performance of model\n",
    "def evaluate(image,max_length=24):\n",
    "  #input image\n",
    "  encoder_input = image\n",
    "\n",
    "  li = [[]]  #passing first empty list \n",
    "\n",
    "  for i in range(max_length):\n",
    "\n",
    "    output = np.array(li) #converting into numpy array\n",
    "\n",
    "    #model predicting word character and atttention weight\n",
    "    predictions, attention_weights = transformer(encoder_input,output,False,None,None,None)\n",
    "    predictions = beam_search_decoder(predictions, 1)\n",
    "    \n",
    "    # select the last word from the seq_len dimension\n",
    "    predictions = predictions[:, -1:, :]  # (batch_size, 1, vocab_size)\n",
    "\n",
    "    predicted_id = tf.argmax(predictions, axis=-1) #getting index from the list which has highest logit score\n",
    "\n",
    "    predicted_id = predicted_id.numpy() \n",
    "    li[0].append(predicted_id[0][0]) #appending the index to list\n",
    "    \n",
    "    #check if the predicted index is equal to index of 'End'\n",
    "    if predicted_id[0][0] == 39:\n",
    "      break\n",
    "\n",
    "\n",
    "  return li, attention_weights"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "id": "FonxvuGvd0Nd"
   },
   "outputs": [],
   "source": [
    "# pedicting the corresponding word character for given image\n",
    "image = lists[20]\n",
    "predicted , attention_weights = evaluate(image, max_length=24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "UTg9Rkx4eCR9",
    "outputId": "8eb63a89-f1fb-4122-8be5-216390887066"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The predicted word is : cotege\n"
     ]
    }
   ],
   "source": [
    "#print predicted word \n",
    "string2 = [ word_dict[str(i)]  for i in predicted[0][:-1]]\n",
    "s = \"\"\n",
    "s = s.join(string2)\n",
    "print(f'The predicted word is : {s}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 165
    },
    "id": "EHWVZBGysGp_",
    "outputId": "6ce46530-f68f-4e16-df1e-71d02e85ebdb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The groundtruth word is : cottage\n",
      "The predicted word is : cotege\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# pedicting the corresponding word character for given image\n",
    "image = lists[20]\n",
    "actual_word = values[20]\n",
    "predicted , attention_weights = evaluate(image, max_length=24)\n",
    "visualize(image ,actual_word , predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "id": "PrK4MUNneK1O"
   },
   "outputs": [],
   "source": [
    "def plot_attention_head(attention ,h ,  string2):\n",
    "  fig = plt.figure(figsize=(20,30))\n",
    "  ax = fig.add_subplot(1, 1, 1)\n",
    "  i = h +1\n",
    "  head = 'Head ' + str(i)\n",
    "  plt.title(head)\n",
    "  ax.matshow(attention[h][1:], cmap='viridis')\n",
    "  fontdict = {'fontsize': 10}\n",
    "  ax.set_yticklabels([''] + string2, fontdict=fontdict, rotation=90)\n",
    "\n",
    "def plot(attention_weights,string2):\n",
    "  attention = attention_weights['decoder_layer1_block2']\n",
    "  attention = attention[0]\n",
    "  fig = plt.figure(figsize=(16, 8))\n",
    "  for h in range(4): # '4' is the number of head used in decoder class\n",
    "    plot_attention_head(attention ,h , string2)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 482
    },
    "id": "4M1qE6IfeP7n",
    "outputId": "04dfd01d-f5d1-4702-f7b7-f8db945a7506"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Y-axis is the feature map dimension of image. \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x2160 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x2160 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x2160 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABHsAAABwCAYAAACO2Xw+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAWG0lEQVR4nO3deZAcZ3nH8d9v9pB2dVuXLcknGKsMwQfC2AWYxIbEJhwuChIcqCIUROGoYEgoQqgUBFImIZUQwmFXxBVSMQQwGDAUCQRMAsQxlmwOn2Vjy7ZsS7JsabW69ph58se08CLvyvOMtne0Pd9P1Za2e56e5+1+3z70bvfbjggBAAAAAACgGmqdLgAAAAAAAACmD509AAAAAAAAFUJnDwAAAAAAQIXQ2QMAAAAAAFAhdPYAAAAAAABUCJ09AAAAAAAAFUJnDwAAQIts/8D2GztdDgAAgMOhswcAAMxatjfbfuEh8/7Q9o86VaaiDN+zHbZ7O1kOAADQnejsAQAAmEa2XyOpr9PlAAAA3asjnT22L7J9p+27bb+7E2VAeWx/xvZ227dMmHeM7e/avqv4d0kny4jpY/t429fZvs32rbYvK+ZT5xVke67tn9j+WVHf7y/mn2z7huK4/kXb/Z0uK6aP7R7bN9v+ZjE9q+rb9irbX7H9iO17bb9twmfn2L7e9i7bD9v++MT1sf0i23fYHrL9cUl+klyLJL1P0rtKW6ESFXdK/cL2T21vLOZxPK8o24ttX1208dttn0d9V5Pt04r9+uDPbttvp76ry/Y7imu1W2x/obiGm1XnbxyZGe/ssd0j6ROSLpZ0uqRLbZ8+0+VAqf5F0kWHzHu3pO9FxKmSvldMoxrGJf1ZRJwu6VxJby32aeq8mkYkXRARZ0g6U9JFts+V9CFJ/xgRT5W0U9IbOlhGTL/LJN0+YXrW1LftmqRrJf1M0mpJF0p6u+3fKULqkt4haZmk84rP31Isu0zSVyX9ZfH5LyU990lSflDSlZK2TuuKzKzfiogzI2JdMc3xvLr+SdJ/RMRaSWeouZ9T3xUUEXcW+/WZkp4laZ+ka0R9V5Lt1ZLeJmldRDxDUo+kV2sWnb9x5DpxZ885ku6OiHsiYlTSv0t6eQfKgZJExP9IeuyQ2S+X9Lni989JumRGC4XSRMTDEXFT8fuwmheKq0WdV1I07Skm+4qfkHSBpKuL+dR3hdheI+l3JX2qmLaOvvr+WnFnzi7buyRdMeGzZ0taHhEfiIjRiLhH0ifVvOhVRGyKiP+LiPGI2CzpnyW9oFj2xZJujYirI2JM0kd0mE4c2+vU7Az62HSvYIdxPK+g4i608yV9WpKK/WOXqO9ucKGkX0bEfaK+q6xX0kAxdtygpId19J2/UaJOdPaslvTAhOktxTxU28qIeLj4fauklZ0sDMph+yRJZ0m6QdR5ZRWP9PxU0nZJ31XzboddETFehHBcr5aPqPlIUqOYXqqjr74viYjFB39U3JlTOFHSqkM6g96j4phk+2m2v2l7q+3dat6Zs6xYdpUmXLNEROjXr2F+pbiD6ApJl03YNrNRSPqO7U221xfzOJ5X08mSHpH02eIxzU/Znifquxu8WtIXit+p7wqKiAcl/b2k+9Xs5BmStElH3/kbJWKAZsy44mI5Ol0OTC/b8yV9RdLbI2L3xM+o82qJiHpxG/gaNe/WXNvhIqEktl8iaXtEbOp0WY7AA5LundgZFBELIuLFxedXSrpD0qkRsVDNjqCD4/I8LOn4g19U3NV0vCa3UNI6SV+0vVXSjcX8LbafP72rVKrnRcTZaj5u/1bb50/8kON5pfRKOlvSlRFxlqS9OuQRHuq7eooxWl4m6cuHfkZ9V0cx9tLL1ezUXSVpnp44zAYqrhOdPQ/q1y+U1hTzUG3bbB8nScW/2ztcHkwj231qdvRcFRFfLWZT5xVX3O5/nZrjnCz246+Y5rheHc+V9DLbm9V87PoCNcf4mE31/RNJw7b/3PZAcWfaM2w/u/h8gaTdkvbYXivpzROW/Zakp9t+RbG+b5N07BR5htS8oD6z+DnYmfQsNe92nBWKvwYrIrarOZ7HOeJ4XlVbJG2JiIPt82o1O3+o72q7WNJNEbGtmKa+q+mFav6h45HiMeSvqnlOn03nbxyhTnT23Cjp1GIk8H41byP8RgfKgZn1DUmvK35/naSvd7AsmEbFX7o/Len2iPjwhI+o8wqyvdz24uL3AUkvUnOcpuskvbIIo74rIiL+IiLWRMRJap6vvx8Rr9Esqu+IqEt6iZodMPdK2qHm+EOLipB3SvoDScNqjuXzxQnL7pD0Kkl/K+lRSadK+vEUeSIith78UfPxGEnaVoxReNSzPc/2goO/S/ptSbeI43klFe30AdunFbMulHSbqO+qu1SPP8IlUd9Vdb+kc20PFtfqB/fvWXP+xpFz8269GU5qv1jNMQB6JH0mIi6f8UKgNLa/IOk31RzzYJuar6D9mqQvSTpB0n2Sfi8iDh3EGbOQ7edJ+qGkX+jxMT3eo+ZfsqnzirH9TDUH9OtR8w8GX4qID9g+Rc07P46RdLOk10bESOdKiulm+zclvTMiXkJ9V1NRr9cUk72SPh8Rl9teKo7nlWT7TDU7P/sl3SPp9SqO7aK+K6foxL1f0ikRMVTMY/+uKNvvl/T7ar4592ZJb1RzjB7O312iI509AAAAAAAAKAcDNAMAAAAAAFQInT0AAAAAAAAVQmcPAAAAAABAhdDZAwAAAAAAUCF09gAAAAAAAFRIxzp7bK/vVG7MPOq7u1Df3YX67i7Ud3ehvrsL9d1dqO/uQn13n07e2UNj6y7Ud3ehvrsL9d1dqO/uQn13F+q7u1Df3YX67jI8xgUAAAAAAFAhjohSE/T3DsZA/+InzB8d36f+3sFpyTG6qCcVXxvN5+jdO5ZbwM7Fj43n4iVFo56Kd09uO0mSsstMsR6jcUD9nvvED2rJ7SQp6o3kAuW2cUnywCTrNs1mUzufcv+ueDufUlXaeV/fpPNHG/vVXxuYlhzjC/pT8Y3Ji3RYfcO5NlWfm2sf6f1ISrepmJc/5jSSzbw2OnkbHBvfp75J9u/GnPy+N1WOqfhAGwe2rBnYlzQn2c5783+bq40k22Ft8hyj9X3q75nkeF7P7UfNZZLHteR2kqToyR1vPZZbj9FF+YOOk02qd19yO7Vj7/5JZ49pRH2aMy0pPEWbmlI2XpIayW2VPR038seD7P+t0ttJSv8/I6bYX6eqb/fn23n09qbiPdrGuTIpxvPXnVmzqZ2PNg6ovzbJ9UPF2/mUX1+Rdr57/JEdEbF8ss9ypW3DQP9inbv2j0rNcf/FT+xMOpyF9+VPoktu3J5bINugtz2Si5fU2LM3FV9btDCdw8llGltz28mD+f8gNoaGU/ExVv5/DmprTy89B+28NbTz8vSuXFV6jsfOPyEVv2dN/uJh9XW7U/G7Tpufij/mhm2peEmKh3LLjK1bm84xujh3yh/csi8VP3xKbjtJ0vzNuf27564t6RxZMToDHUonH58KHzl2XjrFwF2541TMz/0Bzo8NpeIlqbE7d1zTU3LbSZLqC3IdoX0P70rFb3lp/jhYS/5/c8WNye3UjhtvKT1FbTDZpubn23kM78nlSP5HrZ3jQWNkJBWf3U6S5L7cetSHcue93mNXp+IlqX7sklR8bfPWdI6s+o4dpeegnbeGdl6e/9x+5X1T5i89OwAAAAAAAGYMnT0AAAAAAAAV0lJnj+3P2V48YXqJ7c+UVywAAAAAAAC0o9U7e54ZEb96qDkidko6q5wiAQAAAAAAoF2tdvbUbP9qNCLbx+gwgzvbXm97o+2No+O5AR4BAAAAAADQvlaHuP4HSdfb/nIx/SpJl08VHBEbJG2QpEWDq2bgHaYAAAAAAACQWuzsiYh/tb1R0gXFrFdExG3lFQsAAAAAAADtaPnl9UXnDh08AAAAAAAARzFevQ4AAAAAAFAhLd/Z07YIeaxeaoqlt42n4ufsGkvn8Fguh0ZGU+H1vftz3y8pxnNlauzek85RS6531JN1va+N9c7mmAFlt3GJdt4q2nmJentKTzG4PdduBx51OkfPo8Op+Lk7B1LxrjdS8ZIUzq1HbSTfPlxPnvIjN+Te4EMHct8vqeex3P4ao7ljTjtqC+aXnqM+J7cv9Q/l1zv2Jl+QMTg3Fd5Yujj3/ZLcyO0bQ2vzOfaszv0dc8XG3L43uuTJYw61+M7cevfevz2fJKne3196Dg/k2pT7+tI5Itmm1J/LUVu4IPf9krTj0VR4/YynplPsOnUwFb/smltT8XufcVwqXpIGHsydW2Pv3nSOLNPOW0I7b93R2M4Phzt7AAAAAAAAKoTOHgAAAAAAgAqhswcAAAAAAKBC6OwBAAAAAACokJZHa7R9hqTnF5M/jIiflVMkAAAAAAAAtKulO3tsXybpKkkrip9/s/0nZRYMAAAAAAAAea3e2fMGSc+JiL2SZPtDkq6X9LGyCgYAAAAAAIC8VsfssaT6hOl6MW/yYHu97Y22N47W9x1J+QAAAAAAAJDQ6p09n5V0g+1riulLJH16quCI2CBpgyQtGjgujqiEAAAAAAAAaFlLnT0R8WHbP5D0vGLW6yPi5tJKBQAAAAAAgLa0/DauiLhJ0k0llgUAAAAAAABHqNUxewAAAAAAADALtHxnT9vGxqWHtpeaYmBefyq+MaeN1Y7k0ENzcmWqzRvIfb+kxv4px8ieVM9xK9M5Ilmu2rYdqXj39aXimwsNp8Ibe/fmc2SV3MYl2nmraOflid17Ss/Rt3txKn7XafPSOXqHczlcz+0X9cXzU/GS1DNef/KgCe69KL/ezqXQcSO5/SK7nSRJteTfnLLHqDY0hstv57WhwVT88G+sSOcY6FuTivd4Ixc/louXpPpTV6XiH7poPJ1j6fW5423/lsdS8Sdem9+/a7v3p+LjwIF0jqwYy2/bdI6R0dwCK5elc9T6ktc6yWNtHBjJfb8kL1qYih9dkruWkqTl/3VfKn58OHdNMfDft6biJcmDuXNGo548KbWBdt4a2nnrjsZ2fjjc2QMAAAAAAFAhdPYAAAAAAABUCJ09AAAAAAAAFfKknT22P9TKPAAAAAAAAHReK3f2vGiSeRdPd0EAAAAAAABw5KYc2tv2myW9RdIptn8+4aMFkn5cdsEAAAAAAACQd7j3uH1e0rcl/Y2kd0+YPxwRh31Ppe31ktZL0txa/hWVAAAAAAAAaM+UnT0RMSRpSNKl2S+NiA2SNkjSot7l0XbpAAAAAAAAkMLbuAAAAAAAACqEzh4AAAAAAIAKobMHAAAAAACgQg43QPO0iEZDjX37Ss3Ru30oFR+9Pekcse9AKt49yX60RhtDGyWXiV257SRJGt6TCq/vzOVwzal4SYrx8fQyZSu7jUu081bRzsvT2LO39By1zVtT8UtGluZzbN+Zih8964RU/IFjB1PxkqTkMmNP2Z9OsfLaOan4uZvuSefIyrapGB0tqSSPc29f+Tm2P5qKX/C/+X0vsse1s56Win/oBQtS8ZI0siR3PL/3oivTOZ627c2p+BW7dqfieyJ/Hou9uf21sT93Lj5axf7cesfdm/M5xnLnyt6Vy1Px+9adlIqXpOjNnfMfeGX+fH/qo8tyCzy8LRXuefNy3y/JyetOO39tlDUTA8fSzltDO+8M7uwBAAAAAACoEDp7AAAAAAAAKoTOHgAAAAAAgAppqbPHTa+1/d5i+gTb55RbNAAAAAAAAGS1emfPFZLOk3RpMT0s6ROllAgAAAAAAABta/VtXM+JiLNt3yxJEbHTdn+J5QIAAAAAAEAbWu3sGbPdo+INdraXS2pMFWx7vaT1kjRXbbyCFgAAAAAAAG1p9TGuj0q6RtIK25dL+pGkD04VHBEbImJdRKzr89xpKCYAAAAAAABa0dKdPRFxle1Nki6UZEmXRMTtpZYMAAAAAAAAaa0+xqWIuEPSHSWWBQAAAAAAAEeo1ce4AAAAAAAAMAvQ2QMAAAAAAFAhLT/G1S731FSbP6/UHOPHLk7FN+b0pHP0j43nFqgl+9FGRnPxam7bVPyS3HaSpMa8gVR8j52K95w5qXhJauwezsUP5+LbUXYbl2jnLcfTzktTWzi/9Bz1k49Nxe9amy/Tortz9eFGpOLnbN+fipeknh1Dqfi+X56QzrHztFz83J2n5BZIbidJmvtAbr3jgYfSOdKS+3dbVixNhQ8/c0U6xcC2kVR8bbSeil/znZ2peElqDPSl4k8+Zn06x7K7cvFetCAVX1+Si5ekWn9uvWtj+XNlVn1sT+k5PJA7t/qEVfkc+w7kFkhe5wzeeE/u+9tw0sjJ6WV679ueih+PKV+iPKlo55piXu4NzBH5c8bRiHbeGtp5Z3BnDwAAAAAAQIXQ2QMAAAAAAFAhdPYAAAAAAABUSEtj9tj+00lmD0naFBE/nd4iAQAAAAAAoF2t3tmzTtKbJK0ufv5Y0kWSPmn7XSWVDQAAAAAAAEmtvo1rjaSzI2KPJNl+n6RvSTpf0iZJf1dO8QAAAAAAAJDR6p09KyRNfIfnmKSVEbH/kPmSJNvrbW+0vXG0kXxVHAAAAAAAANrW6p09V0m6wfbXi+mXSvq87XmSbjs0OCI2SNogSYv6lnf25fIAAAAAAABdpKXOnoj4a9vflvTcYtabImJj8ftrSikZAAAAAAAA0lq9s0dF587GJw0EAAAAAABAx7Q6Zg8AAAAAAABmgZbv7GlbT6+0dEmpKaLmVHzv0BPGlH5y4/VUeAwkN21vG1XR05MKj5270ik8vCe3QCSHaKrntqskuSfXR1mbOzedI63kNi7RzltFOy+P+/pKz1E7MJaKn//gaDpHz57cvnFgxZxUvNuo79i/PxX/lA2b8znGx1Px2fpuLF2Yipek+qKBVLwXnJLOkVV7YHvpOWJurk3NfbSNdj6Ue0HG0NMXp+IX3Zo/1vY++Fgq/vS/yh0PJCnqjVx85OIbq49JxUvSyIpcOx85a3k6R9aia39eeg6vXJaKj57cdY4keTTXRsZOzG3bvnu3peIlKfbuS8XPuf7OdI5GI9du3d+fiq+tzLfBxqJ5qfjxpYPpHFl9N9xReg7aeWto5yX6/tQfcWcPAAAAAABAhdDZAwAAAAAAUCF09gAAAAAAAFRIS509bnqt7fcW0yfYPqfcogEAAAAAACCr1Tt7rpB0nqRLi+lhSZ8opUQAAAAAAABoW6uvxnlORJxt+2ZJioidtnPDXQMAAAAAAKB0rXb2jNnukRSSZHu5pCnfhWZ7vaT1kjS3N/8qVgAAAAAAALSn1ce4PirpGkkrbF8u6UeSPjhVcERsiIh1EbGuv2cG3i0PAAAAAAAASS3e2RMRV9neJOlCSZZ0SUTcXmrJAAAAAAAAkNbqY1yKiDsk3VFiWQAAAAAAAHCEWn2MCwAAAAAAALMAnT0AAAAAAAAV4ogoN4H9iKT7JvlomaQdpSbH0YT67i7Ud3ehvrsL9d1dqO/uQn13F+q7u1Df1XRiRCyf7IPSO3umYntjRKzrSHLMOOq7u1Df3YX67i7Ud3ehvrsL9d1dqO/uQn13Hx7jAgAAAAAAqBA6ewAAAAAAACqkk509GzqYGzOP+u4u1Hd3ob67C/XdXajv7kJ9dxfqu7tQ312mY2P2AAAAAAAAYPrxGBcAAAAAAECF0NkDAAAAAABQIXT2AAAAAAAAVAidPQAAAAAAABVCZw8AAAAAAECF/D9DjCHwK2z/wAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1440x2160 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light",
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(f'The Y-axis is the feature map dimension of image. ')\n",
    "plot(attention_weights,string2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "tC8ZLcKpdStz"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "name": "Model_1.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
